#include<iostream>
using namespace std;

int judge[10000];
int prime[5000];

//思想就是筛选掉所有素数的倍数
int main()
{
  int n;
  cin>>n;
  int cnt=0;
  for(int i=2;i<n;i++){
    if(!judge[i]){//如果没有被标记
      prime[cnt]=i;
      cnt++;
    }
    for(int j=0;j<cnt&&prime[j]*i<=n;j++){
      judge[i*prime[j]]=1;
      if(i%prime[j]==0)break;//如果已经是最小素因子了就暂停了
    }
  }
  for(int i=0;i<cnt;i++){
    if(i){
        cout<<' '<<prime[i];
    }else{
        cout<<prime[i];
    }
  }
  return 0;
}
